@tailwind base;
@tailwind components;
@tailwind utilities;

/* width */
::-webkit-scrollbar {
  width: 0.5rem;
  height: 0.5rem;
}

/* Track */
::-webkit-scrollbar-track,
::-webkit-scrollbar-corner {
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  border-radius: 3px;
}

/* Handle */
::-webkit-scrollbar-thumb {
  background-color: rgba(255, 255, 255, 0.15);
  border-radius: 4px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: #55555555;
}

:root {
  --foreground-rgb: 255, 255, 255;
  --background-start-rgb: 0, 0, 0;
  --background-end-rgb: 0, 0, 0;
  --scroll: 0;
  text-rendering: geometricPrecision;
}

html {
  height: 100%;
}
body {
  color: rgb(var(--foreground-rgb));
  background: linear-gradient(
      to bottom,
      transparent,
      rgb(var(--background-end-rgb))
    )
    rgb(var(--background-start-rgb));
  font-family: var(--font-aeonik);
  font-size: 14px;
}

.sidenav {
  height: calc(100vh - 62px);
}
.sidenav::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
  background-color: #f5f5f500;
}

.sidenav::-webkit-scrollbar {
  width: 6px;
  background-color: #f5f5f500;
}

.sidenav::-webkit-scrollbar-thumb {
  border-radius: 10px;
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  background-color: #1e1e1e;
}

.fancyBox {
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0) 0%,
    rgba(253, 192, 103, 0.3) 31.77%,
    rgba(131, 210, 237, 0.3) 59.9%,
    rgba(0, 0, 0, 0) 100%
  );
}
.gradientBorderButton,
.gradientBorderButtonFade,
.gradientBorderGray,
.gradientBorderBox,
.gradientBorderButtonLaunch {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}

.gradientBorderBox::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  padding: 1px;
  background: linear-gradient(90deg, #f4c587 25%, #d6d3e9 50%, #99d2ec 100%);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  transition: opacity 300ms ease-in;
  opacity: 0;
}
.gradientBorderGray::before {
  pointer-events: none;
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 7px;
  padding: 1px;
  background: linear-gradient(
    0deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 1)
  );
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.25;
}
.gradientBorderButton::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 7px;
  padding: 1px;
  background: linear-gradient(90deg, #f4c587 25%, #d6d3e9 50%, #99d2ec 100%);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.25;
  pointer-events: none;
}
.gradientBorderGray::before {
  pointer-events: none;
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 7px;
  padding: 1px;
  background: linear-gradient(
    0deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 1)
  );
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.25;
}
.gradientBorderButtonLaunch::before {
  pointer-events: none;
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 0.75rem;
  padding: 1px;
  background: linear-gradient(144deg, #fdc066 0%, #d8d3e9 51%, #7bd1ed 100%);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: gradient 6s ease infinite;
  background-size: 200% 200%;
}

.gradientBorderButtonFade::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 0.75rem;
  padding: 1px;
  background: linear-gradient(
    144deg,
    #fdc06635 0%,
    #d8d3e935 51%,
    #7bd1ed35 100%
  );
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.gradientButton {
  align-items: center;
  background: 0 0;
  border: none;
  color: #000;
  cursor: pointer;
  display: inline-flex;
  padding: 0.65rem 1.15rem;
  position: relative;
  z-index: 1;
  justify-content: center;
}

.gradientButton::after {
  background: linear-gradient(144deg, #fdc066 0%, #d8d3e9 51%, #7bd1ed 100%);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  z-index: -2;
}

.navBlur {
  transition: background-color 300ms;
  background-color: rgba(0, 0, 0, 0);
  overflow: hidden;
}

html .navBlur {
  backdrop-filter: blur(min(calc(var(--scroll) * 1px), 10px));
  background-color: rgba(0, 0, 0, min(calc(var(--scroll) * 0), 0.5));
}

.bgDivider {
  position: relative;
  display: flex;
  align-items: center;
  border: solid 1px transparent;
  border-radius: 3rem;
  border-bottom: none;
  border-left: none;
  border-right: none;
  padding-bottom: 110px;
  margin-bottom: -58px;

  background-image:
    linear-gradient(black, black),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.1) 0%,
      rgba(253, 192, 103, 0.5) 31.77%,
      rgba(131, 210, 237, 0.5) 71.35%,
      rgba(255, 255, 255, 0.1) 100%
    );
  background-origin: border-box;
  background-clip: padding-box, border-box;
}
.border-gradient-color {
  border-image: linear-gradient(90deg, #fdc066 0%, #d8d3e9 51%, #7bd1ed 100%) 1;
}

.border-gradient-gray {
  position: relative;
}
.border-gradient-gray::after {
  background: linear-gradient(
    0deg,
    rgba(255, 255, 255, 0.1) 0%,
    rgba(255, 255, 255, 0.2) 100%
  );
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  z-index: -2;
}
.itemDivider {
  position: relative;
  align-items: center;
  border: solid 1px transparent;
  border-radius: 24px;
  border-bottom: none;

  background-image:
    linear-gradient(black, black),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.1) 0%,
      rgba(253, 192, 103, 0.5) 31.77%,
      rgba(131, 210, 237, 0.5) 71.35%,
      rgba(255, 255, 255, 0.1) 100%
    );
  background-origin: border-box;
  background-clip: padding-box, border-box;
}
.itemDivider::before {
  pointer-events: none;
  position: absolute;
  background-image: linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
  border-radius: 24px;
  content: '';
  display: block;
  height: 100%;
  left: -1px;
  right: -1px;
  top: 0;
  bottom: 0px;
  z-index: 1;
}

.grayBorder {
  position: relative;
  align-items: center;
  border: solid 1px transparent;
  border-radius: 12px;
  border-bottom: none;

  background-image:
    linear-gradient(black, black),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.1) 0%,
      rgba(255, 255, 255, 0.1) 100%
    );
  background-origin: border-box;
  background-clip: padding-box, border-box;
  display: flex;
}
.grayBorder::before {
  position: absolute;
  background-image: linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
  border-radius: 12px;
  content: '';
  display: block;
  height: 100%;
  left: -1px;
  right: -1px;
  top: 0;
  bottom: 0px;
  z-index: -1;
}

.garbage2 {
  color: black;
  position: relative;
  padding: 10px 20px;
  border: 2px solid transparent;
  border-radius: 4px; /* 1px rounded border */
  background-color: blue;
  background-origin: border-box;
  background-clip: content-box, border-box;
  transition: background-color 0.3s ease;
}

.garbage2::after {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)),
    linear-gradient(144deg, #fdc066 0%, #d8d3e9 51%, #7bd1ed 100%);

  position: absolute;
  border-radius: 9px;
  content: '';
  display: block;
  left: -2px;
  right: -2px;
  top: -2px;
  bottom: -2px;
  z-index: -1;
  opacity: 0.25;
}

.icon {
  flex-shrink: 0;
  position: relative;
  align-items: center;
  border: solid 1px transparent;
  width: 60px;
  height: 60px;
  background-image:
    linear-gradient(225deg, #202020 0%, #000 69.6%),
    linear-gradient(225deg, #ffffff38 0%, #ffffff00 69.6%);
  background-origin: border-box;
  background-clip: padding-box, border-box;
}

[id]::before {
  content: '';
  display: block;
  height: 62px;
  margin-top: -62px;
  visibility: hidden;
}

.prose {
  --tw-prose-links: #7cd1ed !important;
}

@media (min-width: 1024px) {
  .prose {
    font-size: 20px;
  }
  .prose h1 {
    line-height: 56px;
    font-size: 48px;
    font-weight: 400;
  }
  .prose h2 {
    font-size: 40px;
    line-height: 48px;
    letter-spacing: 0.4px;
    font-weight: 400;
  }
  .prose h3 {
    line-height: 40px;
    line-height: 40px;
    font-size: 32px;
    font-weight: 400;
  }
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-aeonik);
  color: white;
}
mark {
  background: none;
  opacity: 1;
  color: white;
}
.templateSearch {
  background: black;
}

@media (min-width: 1512px) {
  .prose {
    max-width: 80ch !important;
  }
}

@media (max-width: 1280px) {
  .prose {
    max-width: 50ch;
  }
}
@media (max-width: 1024px) {
  .templateSearch {
    width: calc(100vw - 3rem);
  }
}
@media (max-width: 768px) {
  .templateSearch {
    width: calc(100vw - 20px);
  }
  .prose {
    font-size: 110%;
  }
  .prose p,
  .prose ol,
  .prose ul {
    max-width: calc(100vw - 1.62rem);
  }
  .prose pre,
  .prose table {
    max-width: calc(100vw - 1.62rem);
    overflow: scroll;
  }
  .prose h1,
  .prose h2,
  .prose h3,
  .prose h4,
  .prose h5,
  .prose h6 {
    margin-left: 12px;
  }
}

.hljs {
  background: #000 !important;
}

table {
  border-collapse: separate !important;
  border-spacing: 0;
  border-style: hidden;
}
th,
td {
  padding: 10px !important;
  font-size: 14px;
  border: 0.5px solid #2f2f2f;
}
tbody {
  border-radius: 4px;
}

table tr:first-child th:first-child {
  border-top-left-radius: 4px;
}

table td,
table th {
  border-left: none;
  border-bottom: none;
}
table tr:last-child td {
  border-bottom: 0.5px solid #2f2f2f;
}
table tr td:first-child,
table th:first-child {
  border-left: 0.5px solid #2f2f2f;
}
.prose table p {
  padding: 0;
  margin: 0;
}

table tr:first-child th:last-child {
  border-top-right-radius: 4px;
}

table tr:last-child td:first-child {
  border-bottom-left-radius: 4px;
}

table tr:last-child td:last-child {
  border-bottom-right-radius: 4px;
}

th {
  background: #1a1a1a;
}

.gapFiller {
  box-shadow: -1px 0px 0 rgba(223, 239, 254, 0.14);
}
.gapFiller-right {
  filter: drop-shadow(-1px 0 0 rgba(223, 239, 254, 0.14));
  box-shadow: 1px 0px 0 rgba(223, 239, 254, 0.14);
}

@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

td {
  font-size: 16px;
}

iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border-radius: 20px;
}

.prose table,
.prose pre {
  align-self: flex-start;
}
.prose pre {
  width: 100%;
  padding: 0.5rem;
  margin: 0;
}
.code-block pre {
  border: 1px solid rgba(223, 239, 254, 0.14);
}
.code-group pre {
  border: none;
}
p code::before,
p code::after {
  content: '' !important;
}
.prose p {
  opacity: 0.9;
}
p code,
a {
  opacity: 1;
}

.code-block:hover svg > g {
  opacity: 1;
}

.prose table pre {
  margin: 0;
  padding: 0;
}

.clip-description {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.image-zoom-wrapper img {
  border-radius: 12px;
  box-shadow: 0px 2px 2px #0e0e0e;
}

.image-zoom-wrapper::after {
  background-color: transparent;
  background: linear-gradient(
    162deg,
    rgb(34, 19, 8) -0.84%,
    rgb(23, 21, 28) 48.53%,
    rgb(7, 18, 23) 100%
  );
}

.image-zoom-wrapper.image-zoom-wrapper-zoomed::after {
  opacity: 0.96 !important;
}

.live-preview {
  height: 500px;
  background: white;
}
.live-preview > div {
  height: 100%;
}
pre[class*='console'] {
  color: #ff7b72 !important;
}
span.token.tag.class-name {
  color: #7ee787 !important;
}

code .hljs-title,
.hljs-literal {
  color: #f4c587 !important;
}
.hljs-number {
  color: #b5cea8 !important;
}
code .hljs-string,
.hljs-variable,
.hljs-property {
  color: #99d2ec !important;
}

code.hljs {
  color: white;
}

.gradient-dashed-border:before {
  content: '';
  position: absolute;
  top: -4px;
  bottom: -4px;
  left: -4px;
  right: -4px;

  display: inline-block;
  border-radius: 25px;
  border: 6px dashed #000000;
  background:
    linear-gradient(#000000 0 0) padding-box,
    linear-gradient(to right, #f4c587 0%, #d6d3e9 50%, #99d2ec 100%) border-box;
  z-index: -1;
}

.animated-gradient {
  background: linear-gradient(90deg, #f4c587 25%, #d6d3e9 50%, #99d2ec 100%);
  background-size: 200% 200%; /* This allows the gradient to move */
  animation: gradientAnimation 5s ease infinite; /* Adjust timing and easing as needed */
}

@keyframes gradientAnimation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.perspective-container {
  perspective: 1000px; /* Sets the perspective depth */
}

.gradient-border {
  width: 200px;
  height: 300px;
  padding: 1px;
  background-color: white; /* Content background */
  position: relative;
  transform: rotateX(45deg) rotateY(0deg) rotateZ(135deg);
  background-clip: padding-box;

  /* Create gradient border */
  border: 1px solid transparent;
  background-image:
    linear-gradient(black, black),
    linear-gradient(-45deg, #f4c587 0%, #d6d3e9 50%, #99d2ec 100%);
  background-origin: border-box;
  background-clip: content-box, border-box;
}

.cube {
  position: absolute;
  background: transparent;
  cursor: default;
  transition: all 400ms ease-in-out;
  z-index: 1;
  transform: translate3d(calc(var(--offsetX)), calc(var(--offsetY)), 0);
  will-change: transform, opacity;
}
.cube:hover {
  transform: translate3d(calc(var(--offsetX)), calc(var(--offsetY) - 30px), 0);
}
.cube:hover::before {
  opacity: 1;
}
.cube::before {
  transition: all 400ms ease-in-out;
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #99d2ec;
  filter: blur(10px);
  z-index: -1;
  opacity: 0;
}
.cube-1 {
  --offsetY: -58px;
  --offsetX: 246px;
}
.cube-2 {
  --offsetY: 44px;
  --offsetX: 72px;
}

.cube-3 {
  --offsetY: 28px;
  --offsetX: 404px;
}
.cube-4 {
  --offsetY: 130px;
  --offsetX: 228px;
}
.cube-5 {
  --offsetY: 118px;
  --offsetX: 568px;
}

.cube-6 {
  --offsetY: 222px;
  --offsetX: 384px;
}

.boxes:hover .boxes-bg {
  opacity: 1;
}

.cube .hover {
  transition: all 400ms ease-in-out;
  opacity: 0;
}
.cube .hover img {
  transform: scale(1.35) translate(-11px, 18px);
  filter: drop-shadow(0px 0px 50px rgba(214, 211, 233, 0.1))
    drop-shadow(0px 0px 30px rgba(214, 211, 233, 0.3))
    drop-shadow(0px 0px 20px rgba(214, 211, 233, 0.2));
}

.cube:hover .hover {
  opacity: 1;
}

.vert-line {
  stroke-width: 2px;
  stroke: #f4c587;
  opacity: 0.25;
  filter: drop-shadow(0px 0px 10.26px #fff)
    drop-shadow(0px 0px 20.52px rgba(255, 255, 255, 0.6))
    drop-shadow(0px 0px 71.82px rgba(255, 255, 255, 0.5));
}

.code-hover .gray-logo,
.code-hover .backdrop {
  transition: opacity 400ms ease-in-out;
}

.code-hover:hover .gray-logo {
  opacity: 0;
}
.code-hover:hover .backdrop,
.code-hover:hover .rotater,
.code-hover:hover .rotater-behind {
  opacity: 1;
}

.code-hover:hover .twinkle {
  animation: twinkleMove 2s steps(5) infinite;
}

@keyframes twinkleMove {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-875px);
  }
}

@keyframes backgroundAngle {
  to {
    --angle: 360deg;
  }
}
@property --angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}
.rotater:before {
  mask-composite: xor;
  -webkit-mask-composite: xor;
  animation: inherit;
  content: '';
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  border-radius: inherit;
  position: absolute;
  inset: 0;
  padding: 5px;
  background: conic-gradient(
    from calc(var(--angle) + 180deg),
    rgba(0, 0, 0, 0) 0%,
    #99d2ec 10%,
    #d6d3e9 18%,
    #d6d3e9 22%,
    #f4c587 30%,
    rgba(0, 0, 0, 0) 40%
  );
  mask-composite: exclude;
  opacity: 0.2;
}
.rotater {
  filter: drop-shadow(0 0 5px #fff);
  animation: backgroundAngle 4s linear infinite;
}
.rotater-behind:before {
  mask-composite: xor;
  -webkit-mask-composite: xor;
  animation: inherit;
  content: '';
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  border-radius: inherit;
  position: absolute;
  inset: 0;
  padding: 5px;
  background: rgb(38, 38, 38);
  mask-composite: exclude;
}

.gradientborder {
  border-image: linear-gradient(90deg, #f4c587, #d6d3e9, #99d2ec) 1;
}
.gradientborder180 {
  border-image: linear-gradient(180deg, #f4c587, #d6d3e9, #99d2ec) 1;
}
.dashed-gradient-line {
  width: 1px;
  background: linear-gradient(180deg, #f4c587, #d6d3e9, #99d2ec);
}

.dashed-gradient-line::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: repeating-linear-gradient(
    180deg,
    transparent 0px,
    transparent 5px,
    black 5px,
    black 10px
  );
  mask-image: linear-gradient(180deg, #f4c587, #d6d3e9, #99d2ec);
}

@keyframes noise {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 100% 100%;
  }
}

.chart {
  background: #000;
  position: relative;
}
.chart::before {
  transition: opacity 300ms;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  content: '';
  background: linear-gradient(180deg, #f4c587, #d6d3e9, #99d2ec);
  opacity: 0;
}

button.bg-blue:hover {
  background-color: rgb(161, 230, 252);
  box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.05);
}
.no-scrollbar {
  /* Hide scrollbar for WebKit-based browsers */
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; /* Firefox */
}
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
